import numpy as np
import pandas as pd
from datetime import datetime
import h5py
import time
filename = 'G:/Machine-learning/tensorflow-train-project(jupyter)/KDD-FreshAir/kDD 2018/Data/final_merge_aq_grid_meo_with_weather.h5'
read_csvfile=pd.read_csv('G:/Machine-learning/tensorflow-train-project(jupyter)/KDD-FreshAir/kDD 2018/DeepST-KDD/data/final_merge_aq_grid_meo_with_weather.csv')
#print(read_csvfile['utc_time'])
big_list=[]
#list1=[[read_csvfile['temperature'][i],read_csvfile['pressure'][i],read_csvfile['humidity'][i],read_csvfile['wind_direction'][i]] for i in range(len(read_csvfile))]
list_big_data=[]
list_date=[]
list_35=[]
list_big_data_air=[]
list_date_air=[]
list_35_air=[]
#将所有数据  按时间点归于空气质量监测站 组合的函数。     把空气污染物信息那三个单独放到air文件中去。
for i in range(len(read_csvfile)):
    #list_small=[]
    list_35.append([read_csvfile['temperature'][i],read_csvfile['pressure'][i],read_csvfile['humidity'][i],read_csvfile['wind_direction'][i],read_csvfile['wind_speed/kph'][i],read_csvfile['NO2'][i],read_csvfile['CO'][i],read_csvfile['SO2'][i],read_csvfile['PM2.5'][i],read_csvfile['PM10'][i],read_csvfile['O3'][i]])
    list_35_air.append([read_csvfile['PM2.5'][i],read_csvfile['PM10'][i],read_csvfile['O3'][i]])
    list_date.append(read_csvfile['utc_time'][i])
    if(i+1)% 35 == 0:
        list_big_data.append(list_35)
        list_big_data_air.append(list_35_air)
        list_35=[]

list_big_data_np=np.array(list_big_data)
list_big_data_air=np.array(list_big_data_air)
print(list_big_data_np.shape)

#Python time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。  这里是将时间格式进行一次转换。。。。
#下面是从原始的时间格式转换成 需要的时间格式的方法   但是这里并不是所有的都是用上，而是要和之前的相对应（这就要保持自己一定要是每小时保持35个时间戳。）
new_list_date=[]
for t in range(len(list_date)):
    middle = datetime.strptime(list_date[t], '%Y-%m-%d %H:%M:%S')
    last=str(middle.strftime('%Y%m%d%H'))  #限定之后的真实转换   转成之后再变成字符串
    if (t + 1) % 35 == 0:
        new_list_date.append(last.encode())
#list_date = [time.strptime(str(t[:]), '%Y-%m-%d %H:%M:%S') for t in list_date]
print(new_list_date)
list_date_np=np.array(new_list_date)
print(list_date_np.shape)

######################现在开始讲  整理好的数据进行转换，加上标识转到h5文件中去
filename='G:/Machine-learning/tensorflow-train-project(jupyter)/KDD-FreshAir/kDD 2018/Data/final_merge_aq_grid_meo_with_weather.h5'
f = h5py.File(filename,'w')
f['data']=list_big_data_np
f['data_air']=list_big_data_air
f['date']=list_date_np
#list_big_data_np.to_hdf(filename, 'data', mode='w', format='table')
#list_date_np.to_hdf(filename, 'date', mode='w', format='table')

# df = pd.DataFrame(np.arange(10).reshape((5,2)), columns=['A', 'B'])
# # Save to HDF5
# df.to_hdf(filename, 'data', mode='w', format='table')
# del df    # allow df to be garbage collected
# # Append more data
# df2 = pd.DataFrame(np.arange(10).reshape((5,2))*10, columns=['A', 'B'])
# df2.to_hdf(filename, 'data', append=True)
#
# print(pd.read_hdf(filename, 'data'))